package com.csxh.web.pager.service;

import java.util.List;

import com.csxh.web.pager.bean.Pager;
import com.csxh.web.pager.dao.PagerDao;

/**
 * 分页服务类
 * @author Administrator
 *
 */
public class PagerService {

	//获取指定类型的分页对象
	public <T> Pager<T> findPager(Class<T> clazz,int pagerSize,int pagerIndex,String whereCalse,Object...params){
	
		PagerDao dao=new PagerDao();
		//获取总的记录数据
		long totalCount=dao.totalCountOf(clazz,whereCalse,params);
		//创建分页对象
		Pager<T> pager=new Pager<T>(totalCount,pagerSize,pagerIndex);
		long offset=pager.getOffset(pagerIndex);
		//获取分页数据列表
		List<T> list=dao.findPagerDataList(clazz,offset,pagerSize,whereCalse,params);
		//传给分页对象
		pager.setBeanList(list);
		
		return pager;
	}
	
	//获取指定类型的分页对象
	public <T> Pager<T> findPager(T bean,int pagerSize,int pagerIndex,String whereCalse,Object...params){
		
		PagerDao dao=new PagerDao();
		//获取总的记录数据
		long totalCount=dao.totalCountOf(bean.getClass(),whereCalse,params);
		//创建分页对象
		Pager<T> pager=new Pager<T>(totalCount,pagerSize,pagerIndex);
		long offset=pager.getOffset(pagerIndex);
		//获取分页数据列表
		@SuppressWarnings("unchecked")
		List<T> list=(List<T>) dao.findPagerDataList(bean.getClass(),offset,pagerSize,whereCalse,params);
		//传给分页对象
		pager.setBeanList(list);
		
		return pager;
	}
}
